import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

img = cv.imread('../test_datas/chessboard.png')
rows,cols,ch = img.shape
print(img.shape)

#仿射偏移量
offsetX=100
offsetY=50

pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[10+offsetX,100+offsetY],[200+offsetX,50+offsetY],[100+offsetX,250+offsetY]])
M = cv.getAffineTransform(pts1,pts2)
dst = cv.warpAffine(img,M,(cols,rows))

plt.figure(figsize=(15,15))
plt.subplot(131),plt.imshow(img),plt.title('Input')
plt.subplot(132),plt.imshow(dst),plt.title('Output')
plt.show()

M = cv.getAffineTransform(pts2,pts1)
dst2 = cv.warpAffine(dst,M,(cols,rows))
plt.subplot(133),plt.imshow(dst2),plt.title('Input_FromOutput')
plt.show()